"""
注意：这里的daemon不是linux中的守护进程。

进程靠线程执行代码，至少有一个主线程，其他线程是工作线程，主线程是第一个启动的线程。
- 父线程：如果线程A中启动了一个线程B，A就是B的父线程。
- 子线程：B就是A的子线程。

属性和方法：
- daemon属性：表示线程是否是daemon线程，这个值必须在start方法之前设置，否则引发RuntimeError异常。
- isDaemon()：是否是daemon线程。
- setDaemon：设置为daemon线程，这个值必须在start方法之前设置。


在threading模块的源码中：
- 线程具有一个daemon属性，可以显示设置为True或者False，也可以不设置，则取默认值None。如果不设置daemon，就取当前线程（父进程）的daemon来设置它。
- 另外，主线程是non-daemon线程，即daemon=False。

"""